Ext.define('SubjectCheckView', {
	extend : 'Ext.panel.Panel',
	id : 'SubjectCheckView',
	title : '选题审核管理',
	region : 'center',
	layout : 'border',
	iconCls : 'menu-cusLinkman',

	initComponent : function() {
		this.searchPanel = new KE.SearchPanel({
					region : 'north',
					items : [{
								text : '题目'
							}, {
								width : 120,
								name : 'Q_LIKES_name',
								xtype : 'textfield'
							}, {
								xtype : 'button',
								text : '查询',
								scope : this,
								iconCls : 'btn-search',
								handler : this.search
							}, {
								xtype : 'button',
								text : '清空',
								scope : this,
								iconCls : 'reset',
								handler : this.reset
							}]
				});

		this.topbar = new Ext.Toolbar({
					items : [{
								iconCls : 'btn-ok',
								text : '审核通过',
								xtype : 'button',
								scope : this,
								handler : this.pass
							}, {
								iconCls : 'btn-cancel',
								text : '审核不通过',
								xtype : 'button',
								scope : this,
								handler : this.nopass
							}]
				});

		this.gridPanel = new KE.GridPanel({
			region : 'center',
			tbar : this.topbar,
			id : 'SubjectCheckGrid',
			url : __ctxPath + "/byxt/listMyCheckSubject.do",
			baseParams: {
				'Q_EQI_status': 2				
			},
			fields : ['oid', 'name', 'status', {
						name : 'teacher.fullname',
						mapping : 'teacher.fullname'
					},{
						name : 'checkMember.member.fullname',
						mapping : 'checkMember.member.fullname'
					}, {
						name : 'fromType.itemValue',
						mapping : 'fromType.itemValue'
					}, {
						name : 'type.itemValue',
						mapping : 'type.itemValue'
					}],
			columns : [{
						header : 'ID',
						dataIndex : 'oid',
						hidden : true
					}, {
						header : '题目',
						dataIndex : 'name',
						flex : 2
//					}, {
//						header : '指导教师',
//						dataIndex : 'teacher.fullname'
					}, {
						header : '审核人',
						dataIndex : 'checkMember.member.fullname'
					},{
						header : '题目来源',
						dataIndex : 'fromType.itemValue'
					}, {
						header : '题目类型',
						dataIndex : 'type.itemValue'
					}, {
						header : '状态',
						dataIndex : 'status',
						renderer : function(v) {
							if(v==1) return '<span class="bg-default">草稿</span>';
							if(v==2) return '<span class="bg-info">待审核</span>';
							if(v==3) return '<span class="bg-warning">审核不通过</span>';
							if(v==4) return '<span class="bg-primary">审核通过</span>';
							if(v==5) return '<span class="bg-success">预选成功</span>';
						}
					}, {
						text : '管理',
						xtype : 'actioncolumn',
						items : [{
									iconCls : 'btn-view',
									tooltip : '查看流转信息',
									scope : this,
									handler : function(grid, rowIndex, colIndex) {
										var rec = grid.getStore()
												.getAt(rowIndex);
										this.viewRs(rec);
									}
								}]
					}]
		});

		this.items = [this.searchPanel, this.gridPanel];
		this.callParent();
		this.gridPanel.on('rowdblclick', this.rowClick);
	},
	// 重置查询表单
	reset : function() {
		this.searchPanel.getForm().reset();
		Ext.each(this.searchPanel.query('combo'), function(c) {
					c.setValue('');
					c.setRawValue('');
				});
	},
	// 按条件搜索
	search : function() {
		$search({
					searchPanel : this.searchPanel,
					gridPanel : this.gridPanel
				});
	},
	// GridPanel行点击处理事件
	rowClick : function(grid, rec) {
		new SubjectCheckForm({
					sid : rec.data.oid,
					temp: 1
				}).show();
	},
	// 创建记录
	createRs : function() {
		new SubjectForm().show();
	},
	// 按ID删除记录
	removeRs : function(id) {
		$postDel({
					url : __ctxPath + '/byxt/multiDelSubject.do',
					ids : id,
					grid : this.gridPanel
				});
	},
	// 把选中ID删除
	removeSelRs : function() {
		$delGridRs({
					url : __ctxPath + '/byxt/multiDelSubject.do',
					grid : this.gridPanel,
					idName : 'oid'
				});
	},
	// 编辑Rs
	editRs : function(record) {
		new SubjectForm({
					sid : record.data.oid
				}).show();
	},
	// 流转信息
	viewRs : function(record) {
		new WndShow({
					height : 450,
					width : 850,
					title : '流转信息',
					url : __ctxPath + '/byxt/showOpinionSubject.do?oid='
							+ record.data.oid
				}).show();
	},
	// 审核成功
	pass : function() {
		var a = this.gridPanel;
		var opinion;
		var selRs = this.gridPanel.getSelectionModel().getSelection();
		if (selRs.length == 0) {
			Ext.ux.Toast.msg('操作信息', '请选择要操作的记录！');
			return false;
		}
		Ext.MessageBox.confirm('确认','您确认审核通过这道题目吗？',callbackFunction);				
		function callbackFunction(btn) {
			if (btn == "yes") {
				var ids = [];
				for (var i = 0; i < selRs.length; i++) {
					var status = selRs[i].data.status;
					// 草稿和审核不通过状态才能提交
					if (status != 2) {
						Ext.ux.Toast.msg('操作信息', '只能选择【待审核】状态的记录！');
						return false;
					}
					ids.push(selRs[i].data.oid);
				}
				// 提交
				$postAjax({
							url : __ctxPath + '/byxt/checkTo4Subject.do',
							params : {
								ids : ids.join(',')
							},
							grid : a
						});
			}
		}
	},
	// 审核不成功
	nopass : function() {
		var a = this.gridPanel;
		var opinion;
		var selRs = this.gridPanel.getSelectionModel().getSelection();
		if (selRs.length == 0) {
			Ext.ux.Toast.msg('操作信息', '请选择要操作的记录！');
			return false;
		}
		Ext.MessageBox.show({
					title : '审批意见',
					msg : '请输入审批意见',
					width : 300,
					buttons : Ext.MessageBox.OKCANCEL,
					multiline : true,
					fn : callbackFunction
				});
		function callbackFunction(btn, text) {
			if (btn == "ok") {
				opinion = text;
				var ids = [];
				for (var i = 0; i < selRs.length; i++) {
					var status = selRs[i].data.status;
					// 草稿和审核不通过状态才能提交
					if (status != 2) {
						Ext.ux.Toast.msg('操作信息', '只能选择【待审核】状态的记录！');
						return false;
					}
					ids.push(selRs[i].data.oid);
				}
				// 提交
				$postAjax({
							url : __ctxPath + '/byxt/checkTo3Subject.do',
							params : {
								ids : ids.join(','),
								msg : opinion
							},
							grid : a
						});
			}
		}
	}
});
